The SpaceWire Standard, ECSS-E-50-12A, 24 Jan. 2003, provides a formal basis for the exploitation of SpaceWire technology in a wide-range of on-board processing systems, with particular application to the Space Industry.
SpaceWire uses so-called data-strobe encoding. This is a coding scheme which, at the transmitter side, encodes the transmission clock with the data into respective data and strobe signals. The data values are transmitted directly as the data signal, and the strobe signal is controlled to change state whenever the data remains constant from one data bit interval to the next. Thus, between them, the data and strobe signals have a transition on every bit boundary.
A SpaceWire link comprises two pairs of differential signals, one pair transmitting the data and strobe signals in one direction, and the other pair transmitting the data and strobe signals in the other direction. Thus there is provided a total of eight wires for each bi-directional SpaceWire link. The data-strobe encoding scheme is also used in IEEE 1355-1995 and IEEE 1394-1995 (FireWire) standards, and is well-known.
The data-strobe encoding principle is illustrated in FIG. 1. The data bit stream is generally designated by reference numeral 10. The data signal is generally designated by reference numeral 12, and follows the data bit stream, i.e. is high when the data bit is 1, and is low when the data bit is 0. The strobe signal is generally designated by reference numeral 14. The strobe signal changes state whenever the data does not change state from one bit to the next.
At the receiver side, the transmit clock may then be recovered by a simple XOR operation on the data and strobe signals. The thus recovered transmit clock may then be used to decode the data signal.
The use of the exclusive-OR technique to recover the clock from the data-strobe signals requires tight constraints on transmission line skew between the two signals. This means that relatively expensive transmission lines must be used. The use of the exclusive-OR technique also means that the operation of the receiver is asynchronous.
In SpaceWire systems, a time-code providing timing information for a data-strobe link is transmitted from one node of a link to another node of the link responsive to a request for such time code. The time code is transmitted, responsive to such request, when a current transmission is finished. As the length of the current transmission may vary, the time delay between receipt of a request and transmission of a time code may vary. This variation introduces jitter into the communication system, which is generally undesirable. Jitter may also generally be caused by variations in transmissions caused by latency in a communication link between two or more nodes.
The data-strobe signalling used in SpaceWire further conforms to a standardised communication specification, and the data and control information transmitted is limited to that facilitated by the standards. It is not possible to transmit information not defined by the standard between nodes using the data-strobe signalling.